

<?php

$great = 'fantastico';

// Funciona, resultado: Ustedes son fantasticos
echo "Ustedes son {$great}s";
echo "Ustedes son ${great}s";

// No funciona, resultado: Ustedes son { fantastico}s
echo "Ustedes son { $great}s";



// Funciona
echo "Este cuadrado tiene {$square->width}00 centímetros de lado.";

// Funciona, claves entre comillas sólo funcionan utilizando la sintaxis de llaves
echo "Esto funciona: {$arr['key']}";

// Funciona
echo "Funciona: {$arr[4][3]}";

// No funciona por la misma razón que $foo[bar] es incorrecto fuera de una cadena.
// En otras palabras, funcionaría pero solo porque PHP primero busca por una constante
// llamada foo; un error del nivel E_NOTICE (constante no definida) puede ser lanzado.
echo "No funciona: {$arr[foo][3]}";

// Funciona. Cuando se usan arrays multidimensionales, siempre emplee llaves encerrando
// los arrays cuando se encuentre dentro de una cadena
echo "Funciona: {$arr['foo'][3]}";

// Funciona.
echo "Funciona: " . $arr['foo'][3];

echo "Tambien funciona: {$obj->values[3]->name}";

echo "Este es el valor de la variable llamada $name: {${$name}}";

echo "Este es el valor de la variable llamada por el valor de retorno de getName(): {${getName()}}";

echo "Este es el valor de la variable llamada por el valor de retorno de \$object->getName(): {${$object->getName()}}";

//No funciona, imprime: Esto es el valor de retorno de getName(): {getName ()}
echo "Esto es el valor de retorno de getName(): {getName()}";
?> 
